import { createStore } from 'vuex'
import persist from 'vuex-persistedstate'
export default createStore({
  state: {
    products: []
  },

  getters: {
    count(state) {
      let num = 0 // 记录购物车中的商品总数量
      state.products.forEach(item => {
        num += item.number
      })
      return num
    }
  },

  mutations: {
    changeProducts(state, value) {
      // console.log(value)
      // state.products
      let flag = false // 定义商品是否在购物车中已经存在
      if(state.products.length === 0) { // 当购物车商品数量为0是 将商品直接加购物车
        state.products.push(value)
      } else { // 当购物车数据不为空时 需要判断商品是否已经存在
        state.products.forEach((item, i) => {
          if(item.upid == value.upid) {
            state.products[i].number += value.number
            flag = true
          } 
        })
        if(!flag) {
          state.products.push(value)
        }
      }
    },

    // 批量删除购物车数据的方法
    delGood(state, arr) {
      for(let i = 0; i<state.products.length; i++) {
        for(let j = 0; j<arr.length; j++) {
          if(state.products[i].upid == arr[j].upid) {
            state.products.splice(i, 1)
          }
        }
      }
    },

    // 单个删除购物车数据的方法
    del(state, id) {
      state.products = state.products.filter(item => {
        return item.upid != id
      })
    }
  },
  actions: {
  },
  modules: {
  },

  plugins: [persist()]
})
